home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1993-11-04 | 3.6 KB | 145 lines |
- (******************************
- * Programm von Dieter Seidel *
- * Eingegeben am 14.11.1991 *
- ******************************)
-
-
- IMPLEMENTATION MODULE QuadHoleBefehle;
-
- FROM InOut IMPORT WriteLn, Write, WriteString;
- FROM QuadLese IMPORT MaxBefehle, MaxZeile,
- arrZeile, arrList;
-
-
- PROCEDURE HoleZuweisung(VAR Befehl : arrZeile;
- BefehlsListe : arrList;
- VAR Zeiger : CARDINAL);
- VAR i : CARDINAL;
- BEGIN
- FOR i:=1 TO MaxZeile DO
- Befehl[i]:=" ";
- END;
- i:=1;
- WHILE (BefehlsListe[Zeiger] # ":") AND (i <= MaxZeile) DO
- Befehl[i]:=BefehlsListe[Zeiger];
- INC(i);
- INC(Zeiger);
- END;
- IF i+2 > MaxZeile THEN
- WriteLn;
- WriteString("Kein Quadrupel moeglich!!! Erhoehe die Konstante MaxZeile.");
- WriteLn;
- HALT;
- END;
- Befehl[i]:=":";
- INC(i);
- INC(Zeiger);
- IF (BefehlsListe[Zeiger] >= "0") AND (BefehlsListe[Zeiger] <= "9") THEN
- WHILE (BefehlsListe[Zeiger] >= "0") AND
- (BefehlsListe[Zeiger] <= "9") AND (i <= MaxZeile) DO
- Befehl[i]:=BefehlsListe[Zeiger];
- INC(i);
- INC(Zeiger);
- END;
- IF i > MaxZeile THEN
- WriteLn;
- WriteString("Kein Quadrupel moeglich!!!");
- WriteString(" Erhoehe die Konstante MaxZeile.");
- WriteLn;
- HALT;
- END;
- ELSE
- IF (BefehlsListe[Zeiger] = "p") OR (BefehlsListe[Zeiger] = "s") THEN
- WHILE (BefehlsListe[Zeiger] # ")") AND (i <= MaxZeile) DO
- Befehl[i]:=BefehlsListe[Zeiger];
- INC(i);
- INC(Zeiger);
- END;
- IF i > MaxZeile THEN
- WriteLn;
- WriteString("Kein Quadrupel moeglich!!!");
- WriteString(" Erhoehe die Konstante MaxZeile.");
- WriteLn;
- HALT;
- END;
- Befehl[i]:=")";
- INC(Zeiger);
- ELSE
- IF BefehlsListe[Zeiger] = "X" THEN
- Befehl[i]:="X";
- INC(i);
- INC(Zeiger);
- WHILE (BefehlsListe[Zeiger] >= "0") AND
- (BefehlsListe[Zeiger] <= "9") AND (i <= MaxZeile) DO
- Befehl[i]:=BefehlsListe[Zeiger];
- INC(i);
- INC(Zeiger);
- END;
- ELSE
- WriteLn;
- WriteString("Kein Quadrupel moeglich, da keine gueltige Anweisung!!!");
- WriteLn;
- HALT;
- END;
- END;
- END;
- IF BefehlsListe[Zeiger] = ";" THEN INC(Zeiger) END;
- END HoleZuweisung;
-
-
- PROCEDURE HoleSchleife(VAR Befehl : arrZeile;
- BefehlsListe : arrList;
- VAR Zeiger : CARDINAL);
- VAR i : CARDINAL;
- BEGIN
- FOR i:=1 TO MaxZeile DO
- Befehl[i]:=" ";
- END;
- i:=1;
- WHILE (BefehlsListe[Zeiger] # "d") AND (i <= MaxZeile) DO
- Befehl[i]:=BefehlsListe[Zeiger];
- INC(i);
- INC(Zeiger);
- END;
- IF BefehlsListe[Zeiger] # "d" THEN
- WriteLn;
- WriteString("Kein Quadrupel moeglich, da keine gueltige Anweisung!!!");
- WriteLn;
- HALT;
- END;
- INC(Zeiger);
- END HoleSchleife;
-
-
- PROCEDURE HoleUnterprogramm(VAR Befehl : arrZeile;
- BefehlsListe : arrList;
- VAR Zeiger : CARDINAL);
- VAR i : CARDINAL;
- BEGIN
- FOR i:=1 TO MaxZeile DO
- Befehl[i]:=" ";
- END;
- Befehl[1]:="U";
- INC(Zeiger);
- i:=2;
- WHILE (BefehlsListe[Zeiger] >= "0") AND
- (BefehlsListe[Zeiger] <= "9") AND (i <= MaxZeile) DO
- Befehl[i]:=BefehlsListe[Zeiger];
- INC(i);
- INC(Zeiger);
- END;
- IF i > MaxZeile THEN
- WriteLn;
- WriteString("Kein Quadrupel moeglich!!!");
- WriteString(" Erhoehe die Konstante MaxZeile.");
- WriteLn;
- HALT;
- END;
- IF BefehlsListe[Zeiger] = ";" THEN
- INC(Zeiger)
- END;
- END HoleUnterprogramm;
-
-
- END QuadHoleBefehle.
-